home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1990-12-09 | 2.1 KB | 61 lines |
- DEFINITION MODULE UserBreak;
-
- (*
- Dies Modul dient dazu, Programme durch Drücken von Ctrl-C oder
- Ctrl-Enter abzubrechen.
-
- Zur Aktivierung dieser Option muß die exportierte Prozedur
- 'EnableBreak', zur Deaktivierung 'DisableBreak' aufgerufen
- werden. 'EnableBreak' liefert TRUE, wenn die Aktivierung wie
- gewünscht erfolgte.
-
- Ctrl-C wird erst erkannt, wenn AES-Events (Keyboard, Button
- oder Timer) abgefragt werden, also z.B. bei Benutung der
- Funktionen aus Textwindows oder einem MultiEvent-Aufruf.
- Dann erscheint wie bei einem Laufzeitfehler eine Meldung
- und das Programm kann abgebrochen oder fortgeführt werden.
-
- Ctrl-Enter ist gegenüber Ctrl-C mit Vorsicht zu benutzen.
- Diese Funktion reagiert sofort. Dies kann u.U. dazu führen,
- daß sich das System danach fehlerhaft verhält.
- Dies passiert dann, wenn Ctrl-Enter zu einem Zeitpunkt
- gedrückt wird, in dem Betriebssystemfunktionen ausgeführt
- werden. Deshalb sollte zuerst immer Ctrl-C probiert werden
- und nur, wenn es unbedingt notwendig ist, Ctrl-Enter verwendet
- werden.
-
- Sollte sich das Programm allerdings in einer Endlosschleife
- befinden, die nur aus Modula-Funktionen besteht, oder das
- Programm gerade eine zeitaufwendige Berechnung durchführen,
- kann in der Regel Ctrl-Enter ohne Gefahr benutzt werden.
-
- Übrigens ist das Modul ausschließlich in MODULA programmiert.
- *)
-
-
- PROCEDURE EnableBreak () :BOOLEAN;
- (*
- * Nach Aufruf dieser Routine ist es möglich, das laufende
- * Programm zu unterbrechen.
- *)
-
- PROCEDURE DisableBreak;
- (*
- * Hiernach kann das Programm nicht mehr mit Ctrl-C bzw.
- * Ctrl-Enter abgebrochen werden. Dies ist auch der
- * Anfangszustand.
- *)
-
- VAR Break: BOOLEAN;
- (*
- * Wird TRUE, sobald Ctrl-C gedrückt wurde.
- *
- * Sobald daraufhin ein Event-Aufruf (z.B. EventMulti) oder eine
- * Ausgabe über TextWindows erfolgt, wird das Programm automatisch
- * terminiert.
- * Programme können diese Variable auch selbst abfragen und dann ggf.
- * zurück auf FALSE setzen.
- *)
-
- END UserBreak.
-